考題日期:2016/05/24
題號:10200
星等:2
語言:C++
題目:
題意:
知名數學家Euler發現,在 0 <= n < 40 的情況下,n^2+n+41會產生質數,但超過這範圍後則不一定。請找出在某一個範圍中,這個公式可以產生質數的百分比。
程式:
#include <iostream>
#include <iomanip>
using namespace std;
bool Prime(int num)
{
for(int i = 2 ; i < num/2 ; i++)
{
if(num%i == 0)
return false;
}
return true;
}
int formula(int n)
{
return n*n+n+41;
}
int main()
{
int a,b;
while(cin>>a>>b)
{
float c = 0;
for(int i = a ; i <= b ; i++)
{
if(Prime(formula(i)))
c++;
}
cout<<fixed<<setprecision(2)<<float(c/(b-a+1)*100)<<endl;
}
}
測資: